Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.09.2011, 00:06
Новичок на форуме
Отправить личное сообщение для Actine Посмотреть профиль Найти все сообщения от Actine
 
Регистрация: 02.09.2011
Сообщений: 3

Как подгрузить данные с чужого домена, XSS-proof?
Здравствуйте.
Судя по прочитанному и усвоенному мной материалу два основных способа подгружать данные асинхронно - либо используя объект XMLHttpRequest, либо динамически подключая <script>. Первый способ [не очень понятно по каким-таким причинам безопасности] не работает, если попытаться загрузить данные с чужого домена. Второй способ все-таки позволяет загрузить данные, но загруженный скрипт исполняется.

Вопрос #1. Как загрузить данные с чужого домена, не будучи уверенным, что они не содержат вредоносного кода?

Вопрос #2. Не считаете ли вы запрет кроссдоменных запросы XHR и разрешение оных в JS-инъекции дебилизмом? Ведь XHR можно пропарсить (eval маст дай) и не допустить вредных запросов, а проверить подключаемый скрипт перед интерпретацией не получится.

(P.S. написано исходя из текущих знаний. может, я ошибаюсь.)
Ответить с цитированием
  #2 (permalink)  
Старый 03.09.2011, 00:21
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от Actine
Как загрузить данные с чужого домена, не будучи уверенным, что они не содержат вредоносного кода?
Если на другом домене никто не позаботился о том, чтобы Вы смогли получить данные JS'ом, то Вы их не получите JS'ом.
Сообщение от Actine
Вопрос #2. Не считаете ли вы запрет кроссдоменных запросы XHR и разрешение оных в JS-инъекции дебилизмом? Ведь XHR можно пропарсить (eval маст дай) и не допустить вредных запросов, а проверить подключаемый скрипт перед интерпретацией не получится.
А кто Вас заставляет подключать скрипт, указывающий на непонятный файл на другом домене? И вообще, ограничения на XHR введены не для Вашей защиты, а для защиты пользователя, которому, может быть, на его любимом сайтике при заходе пишут "Привет, %username%! Твой текущий пароль: %password%" который, скажем, авторизуется по IP. А Вы возьмете и отправите какой-нибудь запрос вида ?act=delete&target=all&confirm
Ответить с цитированием
  #3 (permalink)  
Старый 03.09.2011, 17:04
Новичок на форуме
Отправить личное сообщение для Actine Посмотреть профиль Найти все сообщения от Actine
 
Регистрация: 02.09.2011
Сообщений: 3

Насчет применения. Допустим, сотворяется распределенная децентрализированная социальная сеть. Допустим, есть 5 отдельных нодов на разных доменах. Допустим, нужно сделать поиск человека по всем нодам. Первый приходящий на ум вариант, не грузящий сервер, с которого загружена основная страница - это опросить все ноды "аджаксом" и обработать полученные результаты. В то же время, даная социальная сеть есть открытой, т.е. каждый может зарегать ноду и будет сам себе админ. Т.е. есть шанс, что при загрузке скрипта с какой-то ноды вместо набора данных я получу location.href="somesite?login=&pwd="

Вариантов подключить скрипт, не запустив его, нет?
Ответить с цитированием
  #4 (permalink)  
Старый 03.09.2011, 17:52
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

введи какой нибудь маркер. если в тексте аякс ответа присутствует маркер-то это скрипт- соответственно подключить этот ответ как скрипт(несколько вариантов ) ,если нет маркера использовать ответ по другому.
Сообщение от Actine
Допустим, есть 5 отдельных нодов на разных доменах.
а субдомены что мешает использовать для этих целей?
Ответить с цитированием
  #5 (permalink)  
Старый 03.09.2011, 18:01
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от dmitriymar
а субдомены что мешает использовать для этих целей?
На субдомены всё равно отправлять XHR запросы нельзя.
Сообщение от Actine
Вариантов подключить скрипт, не запустив его, нет?
Без соответствующих настроек на сайте со скриптом — нет.
Ответить с цитированием
  #6 (permalink)  
Старый 03.09.2011, 18:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

читаем: http://javascript.ru/ajax/cross-domain-scripting
мне нравится эта библиотека: http://code.google.com/p/crossxhr/wiki/CrossXhr
если сайты с которыми вы собираетесь общаться принадлежат вам, то есть ряд возможностей для передачи данных
в частности для тега скрипт можно использвать JSONP
Ответить с цитированием
  #7 (permalink)  
Старый 03.09.2011, 22:08
Кандидат Javascript-наук
Отправить личное сообщение для Slavenin Посмотреть профиль Найти все сообщения от Slavenin
 
Регистрация: 20.11.2010
Сообщений: 143

curl? не js конечно, но получать данные вполне возможно
__________________


Последний раз редактировалось Slavenin, 03.09.2011 в 22:25.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить данные в файл? Возможно такое на JavaScript? Forgott Общие вопросы Javascript 35 26.06.2015 19:11
как подгрузить стиль для определённой ссылки? Negative Элементы интерфейса 1 11.11.2009 16:45
получить данные из store, как ? maslks ExtJS 5 14.10.2009 16:45
Как сохранять данные на сервере по средствам <form>? goshikvia Общие вопросы Javascript 1 26.03.2009 14:06
Help ! Как загрузить данные по ссылке из таблицы1 в таблицу2 ? asked86 Общие вопросы Javascript 1 25.03.2009 21:06